home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 117 - YY Proterm2.dsk / TO.ULTA.MACRO.1 / ULTRAMACROS / INSTALL.TIMEOUT.bas < prev    next >
BASIC Source File  |  2000-01-01  |  10KB  |  195 lines

  1. 1 C$ = "TimeOut UltraMacros V1.7 (c) 1987, Randy Brandt, January 26, 1988"
  2. 2  DATA  4,TO.COMPILER,TO.MACRO.OPT,TO.CLIPBOARD,TO.UTILITIES
  3. 10  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>TimeOut Startup Program<CTRL-M> Copyright 1987, Alan Bird<CTRL-M>
  4. 20 Z1 = 14336:Z2 = Z1 +1024:Z3 = 16384: REM  Address of:AW header, TO header if already installed
  5. 40 F$ = "APLWORKS.SYSTEM"
  6. 50  TEXT :D$ =  CHR$(4): PRINT D$"pr#3": PRINT : VTAB 1: PRINT D$"prefix": INPUT PFX$
  7. 55  READ J: FOR I = 1 TO J: READ A$: NEXT : REM  Skip copy files
  8. 60  READ MX: FOR J = 1 TO MX: READ NM(J): FOR I = 1 TO NM(J): READ MM$(J,I): NEXT : NEXT 
  9. 70  INVERSE : PRINT  SPC( 82): FOR I = 1 TO 22: POKE 36,78: PRINT "    ";: NEXT : PRINT  SPC( 77): POKE 2039,32: NORMAL 
  10. 80  POKE 32,2: POKE 33,76: POKE 34,1: POKE 35,23
  11. 90  VTAB 3
  12. 100 A$ = "TimeOut": GOSUB 1700
  13. 110 A$ = "Copyright 1987, Alan Bird": GOSUB 1700
  14. 120 A$ = "Version 1.2, December 14, 1987": GOSUB 1700: POKE 34,5
  15. 130  PRINT D$"bload TimeOut,a"Z3:TL =  PEEK(48857) + PEEK(48858) *256: REM  Len of TO
  16. 150  GOSUB 1040: IF A = 0  THEN 560: REM  Select Main action
  17. 160  GOSUB 1510: IF A = 0  THEN 150: REM  Sort?
  18. 165  GOSUB 1600: IF A = 0  THEN 160: REM  Multiple disks?
  19. 170  GOSUB 1110: REM  Select Applications location
  20. 180  IF A = 0  THEN 165
  21. 190  GOSUB 1170: REM  Select AppleWorks location
  22. 200  IF A = 0  THEN 170
  23. 205  HOME : VTAB 10: PRINT  TAB( 10)"Place your AppleWorks STARTUP program in the drive now.": VTAB 20: GOSUB 980
  24. 210  ONERR  GOTO 690
  25. 220  VTAB 12: CALL  -958: VTAB 14: PRINT : HTAB 20: PRINT "  --> Patching "F$"    "
  26. 221  ONERR  GOTO 4000
  27. 223  PRINT D$"verify"FI$
  28. 225  ONERR  GOTO 235: REM  Find length of AW
  29. 230  PRINT D$"bload"FI$",tsys,a$300,b$ffff": HOME : PRINT "APLWORKS.SYSTEM is too big!": END : REM  This should never happen!
  30. 235  POKE 216,0:TA =  PEEK(48857) + PEEK(48858) *256 +8192: REM  Len of APLWORKS. Patch location
  31. 237  PRINT D$"bload"FI$",tsys,L4,A"Z1: REM  Load AW header
  32. 240  IF  PEEK(Z1 +3) < >20 GOTO 950: REM  Wrong Version. Not 2.0
  33. 245  PRINT D$"bload"FI$",tsys,l3,b8528,a"Z1: REM  Jmp after relocate
  34. 250  PRINT D$"bload"FI$",Tsys,L1024,B" PEEK(Z1 +1) + PEEK(Z1 +2) *256 -8192",A"Z2: REM  Load possible TO header
  35. 260 AGAIN = 0:B$ = "Installing TimeOut ..."
  36. 270  FOR I = 1 TO 5: IF  PEEK(Z2 +3 +I) =  ASC( MID$ ("ABird",I,1))  THEN  NEXT :AGAIN = 1:B$ = "Replacing former TimeOut ...":TA =  PEEK(Z1 +1) + PEEK(Z1 +2) *256: REM  Loading TimeOut again. Replace older version.
  37. 290  PRINT : HTAB 20: PRINT "  --> "B$
  38. 300 A = TA: GOSUB 3000
  39. 330 BL =  PEEK(Z1 +1):BH =  PEEK(Z1 +2): REM  Save first 'jmp' address
  40. 332  IF (AGAIN)  THEN BL =  PEEK(Z2 +43):BH =  PEEK(Z2 +44): REM  If here already, use former return adr
  41. 334  POKE Z3 +43,BL: POKE Z3 +44,BH: REM  Point TO to continue AW
  42. 335  POKE Z1 +1,AL: POKE Z1 +2,AH: REM  Point AW to TO
  43. 340  POKE Z3 +10,AD: REM  Acc Device
  44. 350 L =  LEN(AP$): POKE Z3 +45,L: IF L >0  THEN  FOR I = 1 TO L: POKE Z3 +45 +I, ASC( MID$ (AP$,I,1)): NEXT 
  45. 352  POKE Z3 +110,SRT: POKE Z3 +113,MD: REM  Sort mode, mult disks
  46. 355  POKE Z3 +16,AL: POKE Z3 +17,AH: REM  Need :From
  47. 357 A = TA +11: GOSUB 3000: POKE Z3 +1,AL: POKE Z3 +2,AH: REM  Set 'jmp Init'
  48. 360  PRINT D$"unlock"FI$
  49. 370  PRINT D$"bsave"FI$",Tsys,A"Z3",B"TA -8192",L"TL
  50. 375  PRINT D$"bsave"FI$",Tsys,L3,B8528,A"Z1
  51. 380  PRINT : HTAB 20: PRINT "  --> Done": PRINT : GOSUB 980: GOTO 560
  52. 390  REM <CTRL-M><CTRL-M>Menu Selection<CTRL-M>
  53. 400 IN = 2
  54. 410  REM  Enter here with different line spacing (IN)
  55. 420  IF A$ < >""  THEN  VTAB 11: PRINT  TAB( 20)A$
  56. 430 N = NM(MN): FOR I = 1 TO N: GOSUB 520: NEXT :I = 1: IF IX  THEN I = IX:IX = 0
  57. 435  GOSUB 510
  58. 440  IF  PEEK(49152) <128  THEN 440
  59. 450 A =  PEEK(49152) -128: POKE 49168,A: IF A = 8  OR A = 11  THEN  GOSUB 520:I = I -1: GOSUB 530: GOTO 440
  60. 460  IF A = 21  OR A = 10  THEN  GOSUB 520:I = I +1: GOSUB 530: GOTO 440
  61. 470  IF A = 13  THEN A = I: GOTO 520
  62. 480  IF A = 27  THEN A = 0: RETURN 
  63. 490 A = A -48: IF A >0  AND A <N +1  THEN  GOSUB 520:I = A: GOSUB 530
  64. 500  GOTO 440
  65. 510  INVERSE 
  66. 520  VTAB I *IN +11: HTAB 20:M =  PEEK(50): NORMAL : PRINT I". ";: POKE 50,M: PRINT " "MM$(MN,I)" ": NORMAL : RETURN 
  67. 530  IF I >N  THEN I = 1
  68. 540  IF I = 0  THEN I = N
  69. 550  GOTO 510
  70. 560  REM <CTRL-M><CTRL-J>QUIT<CTRL-J>
  71. 570  ONERR  GOTO 600
  72. 580  HOME :MN = 2:N = NM(2): HTAB 31: CALL  -958:A$ = "Configuration finished": GOSUB 390: IF A = 1  THEN 1090
  73. 590  IF A = 3  AND FI$ < >""  THEN  PRINT  CHR$(4)"-"FI$
  74. 595  IF A = 2  THEN  GOSUB 2000: GOTO 580
  75. 600  TEXT : HOME : PRINT D$"-/ultramacros/startup"
  76. 610  REM  Data
  77. 620  DATA  7: REM  # of menus
  78. 630  DATA  3,AppleWorks STARTUP disk,Slot and Drive,ProDOS directory
  79. 640  DATA  4,Read NOTES (Manual Updates),Copy files to TimeOut Application disk,Run AppleWorks,Quit
  80. 650  DATA  3,Update AppleWorks,Read NOTES,Quit
  81. 660  DATA  2,Slot and Drive,ProDOS directory
  82. 670  DATA  7,Slot 1,Slot 2,Slot 3,Slot 4,Slot 5,Slot 6,Slot 7
  83. 680  DATA  2,Drive 1,Drive 2
  84. 685  DATA  2,No,Yes
  85. 690  REM <CTRL-M><CTRL-J>ONERR HANDLER<CTRL-J>
  86. 700 ER =  PEEK(222)
  87. 710  REM  MISC MESSAGES
  88. 720  POKE 216,0: HOME : VTAB 9: PRINT :A1$ = ""
  89. 730  ON ER GOSUB 890,890,810,820,890,830,830,840,850,890,890,860,870,890,890,910,890,890,890,880,890,900,920,930
  90. 740  HTAB (78 - LEN(A$))/2: PRINT A$: IF  LEN(A1$)  THEN  HTAB (78 - LEN(A1$))/2: PRINT A1$
  91. 750  REM <CTRL-M><CTRL-J>FINISH ONERR<CTRL-J>
  92. 760  VTAB 13: PRINT : GOSUB 980
  93. 770  HOME : ONERR  GOTO 690
  94. 775  IF CP  THEN CP = 0: GOTO 560
  95. 780  IF ER = 25  AND GA < >155  THEN  RESUME 
  96. 790  IF (ER = 6  OR ER = 7)  AND GA < >155  THEN  RESUME : REM  Insert AppleWorks STARTUP
  97. 800  GOTO 90
  98. 810 A$ = "DISK DOES NOT EXIST": RETURN 
  99. 820 A$ = "REMOVE WRITE-PROTECT TAB": RETURN 
  100. 830  IF   NOT CP  THEN A$ = "INSERT APPLEWORKS STARTUP DISK": RETURN 
  101. 840 A$ = "DISK ERROR": RETURN 
  102. 850 A$ = "DISK IS FULL":A1$ = "PLEASE REMOVE UNNEEDED FILES": RETURN 
  103. 860 A$ = "NOT ENOUGH MEMORY":A1$ = "PLEASE REBOOT TIMEOUT": RETURN 
  104. 870 A$ = "APLWORKS.SYSTEM IS WRONG":A1$ = "FILE TYPE": RETURN 
  105. 880 A$ = "FILE WAS BUSY":A1$ = "PLEASE TRY AGAIN": PRINT D$"CLOSE": RETURN 
  106. 890 A$ = "ERROR #" + STR$(E): RETURN 
  107. 900 A$ = "DONE": RETURN 
  108. 910 A$ = "BAD PRODOS DIRECTORY NAME": RETURN 
  109. 920 A$ = "UPDATE COMPLETE": RETURN 
  110. 930 A$ = "APPLEWORKS STARTUP FILE TOO LARGE.":A1$ = "NOT ENOUGH ROOM FOR TIMEOUT.": RETURN 
  111. 940 A$ = "PLEASE INSERT THE TIMEOUT DISK.": RETURN 
  112. 950  REM  Unrecognized AppleWorks
  113. 960  HOME : VTAB 10: PRINT  TAB( 8)"This version of AppleWorks is not recognized by TimeOut."
  114. 970 ER = 0: GOTO 750
  115. 975  PRINT : PRINT : PRINT 
  116. 980  REM <CTRL-M><CTRL-J>Any Key<CTRL-J>
  117. 990  POKE 36,29: INVERSE : PRINT " PRESS ANY KEY ";: NORMAL 
  118. 1000 GA =  PEEK(49152): IF GA <128  THEN 1000
  119. 1010  POKE 49168,0: RETURN 
  120. 1020  REM  APLWORKS file too big!
  121. 1030 ER = 24: GOTO 710
  122. 1040  REM <CTRL-M>Main menu
  123. 1050  HOME : PRINT : HTAB 3: VTAB 8:A$ = "This program installs TimeOut on your AppleWorks STARTUP program.": GOSUB 1700
  124. 1055  VTAB 20:A$ = C$: GOSUB 1700
  125. 1060 MN = 3:A$ = "Please select the appropriate action: ": GOSUB 390
  126. 1070  ON A +1 GOTO 560,1080,1090,560
  127. 1080  RETURN 
  128. 1090  REM  Run NOTES
  129. 1100  POKE 216,0: PRINT  CHR$(4)"-READ.NOTES"
  130. 1110  REM  Select App location
  131. 1120  HOME :MN = 1:AD = 0:AP$ = "":A$ = "Select the location of your TimeOut Applications": GOSUB 390: ON A +1 GOTO 1160,1160,1130,1140
  132. 1130  GOSUB 1250:AD = S *16 +128 *(D = 2): GOTO 1160
  133. 1140  GOSUB 1320: IF PTH$ = ""  THEN A = 0: GOTO 1160
  134. 1150 AP$ = PTH$ +"/"
  135. 1160  RETURN 
  136. 1170  REM  Get TO location
  137. 1180 S = 6:D = 1
  138. 1190  HOME :MN = 4:A$ = "Select Current AppleWorks STARTUP location:": GOSUB 390:X = A: ON A +1 GOTO 1240,1200,1220
  139. 1200  GOSUB 1250
  140. 1205  IF A = 0  THEN 1240
  141. 1210 FI$ = F$ +",s" + STR$(S) +",d" + STR$(D): GOTO 1240
  142. 1220  GOSUB 1320
  143. 1225  IF PTH$ = ""  THEN A = 0: GOTO 1240
  144. 1230 FI$ = PTH$ +"/" +F$
  145. 1240  RETURN 
  146. 1250  REM  Get Slot and Drive
  147. 1260 S = 0:D = 0
  148. 1270  HOME :MN = 5:A$ = "Select disk slot:":IN = 1: GOSUB 410: IF A = 0  THEN S = 0:D = 0: RETURN 
  149. 1280 S = A
  150. 1290  HOME :MN = 6:A$ = "Select disk drive:": GOSUB 390: IF A = 0  THEN 1270
  151. 1300 D = A
  152. 1310  RETURN 
  153. 1320  REM  Get a pathname
  154. 1330  HOME : VTAB 10: PRINT  TAB( 15)"Enter ProDOS pathname:<CTRL-M>"
  155. 1340  HTAB 15: INPUT "";PTH$: IF PTH$ = ""  THEN 1370
  156. 1350  IF  LEFT$(PTH$,1) < >"/"  THEN PTH$ = "/" +PTH$
  157. 1360  IF  RIGHT$(PTH$,1) = "/"  THEN PTH$ =  LEFT$(PTH$, LEN(PTH$) -1)
  158. 1370  RETURN 
  159. 1510  REM  Sort?
  160. 1520  HOME :MN = 7:A$ = "Do you want the TimeOut Application menu sorted?":IX = 2: GOSUB 390: IF A = 0  THEN  RETURN 
  161. 1530 SRT = A -1: RETURN 
  162. 1600  REM  Multiple disks?
  163. 1620  HOME :MN = 7:A$ = "Do you need more than one TimeOut Application disk?": GOSUB 390: IF A = 0  THEN  RETURN 
  164. 1630 MD = A -1: RETURN 
  165. 1700  HTAB 40 - LEN(A$)/2: PRINT A$: RETURN 
  166. 2000  REM  Copy files
  167. 2005  ONERR  GOTO 690
  168. 2010 CP = 1:BU = 16384: RESTORE 
  169. 2020  GOSUB 2500: IF A = 0  THEN  RETURN 
  170. 2040  HOME :MN = 7:A$ = "Do you have at least 2 drives to copy with?": GOSUB 390: IF A = 0  THEN  RETURN 
  171. 2050 TWO = A -1: IF TWO  THEN  HOME : VTAB 10: PRINT  TAB( 20)"Insert your TimeOut applications disk": PRINT  TAB( 20)"in the second drive": GOSUB 975
  172. 2060  READ J
  173. 2070  READ A$:B = 0:B$ = PTH$ +"/" +A$: IF PTH$ = ""  THEN B$ = A$ +",s" + STR$(S) +",d" + STR$(D)
  174. 2075  HOME : VTAB 10: PRINT  TAB( 20)"Copying "A$" ..."
  175. 2080  GOSUB 2300: GOSUB 2400: IF L = BU  THEN B = B +L: GOTO 2080
  176. 2090 J = J -1: IF J  THEN 2070
  177. 2100  PRINT D$"prefix"PFX$
  178. 2110 CP = 0: RETURN 
  179. 2200  IF   NOT TWO  THEN  VTAB 14: PRINT : PRINT  TAB( 20)"Insert "F$" disk          ": GOSUB 975: VTAB 11: CALL  -958
  180. 2210  RETURN 
  181. 2300 F$ = "source": GOSUB 2200
  182. 2310  PRINT D$"bload"PFX$A$",a$4000,l"BU",b"B:L =  PEEK(48859) + PEEK(48860) *256
  183. 2320  RETURN 
  184. 2400 F$ = "destination": GOSUB 2200
  185. 2410  PRINT D$"bsave"B$",a$4000,l"L",b"B
  186. 2420  RETURN 
  187. 2500  REM  Select TO App location
  188. 2520  HOME :MN = 4:AP$ = "": VTAB 10: PRINT  TAB( 20)"Specify the location of the":A$ = "destination (TimeOut applications) disk": GOSUB 390: ON A +1 GOTO 2560,2530,2540
  189. 2530  GOSUB 1250: GOTO 2560
  190. 2540  GOSUB 1320: IF PTH$ = ""  THEN A = 0
  191. 2560  RETURN 
  192. 3000  REM  Get hi/lo bytes of A to AL,AH
  193. 3010 AH =  INT(A/256):AL = A -(AH *256): RETURN 
  194. 4000  IF F$ = "APLWORKS.SYSTEM"  THEN F$ = "APLWORKS.SYS": ON X +1 GOSUB 1240,1205,1225: GOTO 210
  195. 4010  POKE 216,0: RESUME